
import { createRouter, createWebHashHistory } from 'vue-router';

import { NowUserName, ignorePath } from '@/utils/cacheEnum'
// 2. 定义一些路由
// 每个路由都需要映射到一个组件。
// 我们后面再讨论嵌套路由。
const routes = [
    { 
        path: '/',
        name: 'Home',
        component: () => import('@/views/home/index.vue')
    },
    { 
        path: '/login',
        name: 'Login',
        component: () => import('@/views/login/index.vue')
    },
    { 
        path: '/registr',
        name: 'Registr',
        component: () => import('@/views/login/registr.vue')
    },
    {
        path: '/my',
        name: 'My',
        component: () => import('@/views/my/index.vue')
    },
]

// 3. 创建路由实例并传递 `routes` 配置
// 你可以在这里输入更多的配置，但我们在这里
// 暂时保持简单
export const router = createRouter({
  // 4. 内部提供了 history 模式的实现。为了简单起见，我们在这里使用 hash 模式。
  history: createWebHashHistory(),
  routes, // `routes: routes` 的缩写
})

router.beforeEach(async (to, _, next) => {
    if(ignorePath.indexOf(to.path) < 0){
        let user = sessionStorage.getItem(NowUserName);
        if(user==null){
            next('/login')
            return;
        }
    }else{
        let user = sessionStorage.getItem(NowUserName);
        if(user!=null){
            next('/')
            return;
        }
    }
    next();
})


// config router
export function setupRouter(app) {
  app.use(router);
}
